While working with bitwise operators &
or |
, it is easy to make a typo and write the equivalent logical
operators &&
or ||
. This rule raises an issue when the right operand of a logical expression &&
or ||
is a constant of integral type, as the developer probably meant to use the corresponding bitwise operator &
or
|
.
Noncompliant code example
int fun(int a) {
return a || 4; // Noncompliant: did you mean to use bitwise operator '|'?
}
Compliant solution
int fun(int a) {
return a | 4;
}